package com.ease.util.reflection {
   import com.ease.util.ProfilingManager;

   /**
    * Represents the class level reflection info.
    */
   public class ClassReflectionInfo {
      /**
       * The class' meta tags.
       */
      public var tagInfos:Vector.<TagReflectionInfo>;

      /**
       * The names of the classes this class is extending, or null if none.
       */
      public var baseClassNames:Vector.<String>;

      /**
       * The names of the interfaces this class is implementing, or null if none.
       */
      public var interfaceNames:Vector.<String>;

      /**
       * @see ProfilingManager.getObjectSize.
       */
      public function getNestedSize():int {
         var size1:int = ProfilingManager.instance.getObjectSize(this.tagInfos);
         // deep is false because the class names are shared in ReflectionManager.
         var size2:int = ProfilingManager.instance.getObjectSize(this.baseClassNames, false);
         var size3:int = ProfilingManager.instance.getObjectSize(this.interfaceNames, false);
         return  size1 + size2 + size3;
      }
   }
}